home *** CD-ROM | disk | FTP | other *** search
- Dnia 01-Wrz-98, RHS Linux User napisal:
- >Witajcie,
- >Mam pytanie do programuj±cych w C++
- >1.
- >Jak mam siê dobraæ do klasy je¿eli jest ona zdefiniowana w inym pliku?
- >¯adne extern nie wchodzi w rachubê bo kompilator mi siê krzywi.
-
- W pliku *.h musi byc deklaracja klasy (taka definicja typu)
-
- class XXX
- {
- ...
- XXX(int x); // przykladowo konstruktor
- ...
- };
-
-
- A w pliku *.cpp ciala metod tej klasy.
-
- ...
- XXX::XXX(int x)
- {
- ...
- }
- ...
-
-
- Wtedy w kazdym module w ktorym jest #include "xxx.h" mozna
- korzystac z klasy. Oczywiscie trzeba odpowiednio przygotowac
- makefile.
-
- >2.
- >Dlaczego jak najpierw zdefiniujê obiekt klasy w procedurze powiedzmy
- >main()
- >a potem chcê wywo³aæ metodê z tego objektu w innej procedurze
- >to kompilator mi siê krzaczy ¿e obiekt nie zosta³ zadeklarowany.
- >Jak to omin±æ? Mam za ka¿dym razem tworzyæ objekt w ka¿dej procedurze
- >w sposób statyczny?
-
- To bez sensu - w kazdej procedurze bedzie to inny obiekt.
- Sa dwa rozwiazania
- 1. Zadeklarowac obiekt poza funkcja main - jako globalny
- 2. Przekazywac ten obiekt jako parametr do kazdej funkcji
- ktora go potrzebuje. Najlepiej jako referencje ( XXX &obiekt)
-
-
-
- >3.
- >Jak zdefiniujê sobie tablicê poprzez AllocVec mam typ APTR ale chcia³bym
- >odnie¶æ siê do tej tablicy poprzez index do jej poszczególnych
- >elementów.
- >Mam zastosowaæ jakie¶ rzutowanie?Je¶li tak to w jaki sposób?Mogê to
- >sobie
- >napisaæ w assemblerze ale chcia³bym zobaczyæ jak to zrobiæ (o ile jest
- >to
- >mo¿liwe) w C++.
-
- long *vec;
-
-
- vec = (long *)AllocVec(...);
- // i tutaj mozna vec[nn]
-
-
-
-
- --
- Krzysztof Rudnik mail: rudnik@kki.net.pl
- A1230T 882/50MHz 16MB, CD-ROM, HDD 1GB
-
-
-
-